// Copyright 2011 Jefferson Willian
// willmont7@gmail.com

#include <cstdio>

#define MAX 1000

int main() {
  int coordX, coordY;
  int inst1, inst2;
  int matriz[MAX][MAX];
  int n, m;
  int games = 1;

  while (scanf("%d%d", &n, &m) && (n != 0 || m != 0)) {
    /* Coordenadas de deslocamenoto */
    coordX = coordY = 0;

    for (int i = 0;i < n;i++)
      for (int j = 0;j < m;j++)
        scanf("%d", &matriz[i][j]);

    /* Recebe instrucoes de deslocamento */
    while (scanf("%d%d", &inst1, &inst2) && (inst1 != 0 || inst2 != 0)) {
      coordX += inst2;
      coordY += inst1*-1;
    }

    /* Tira o modular do deslocamento */
    coordX %= n;
    coordY %= m;

    /* Modular positivo */
    if (coordX < 0)
      coordX += n;
    if (coordY < 0)
      coordY += m;

    printf("Teste %d\n", games++);

    /* Atualiza a nova tela a partir de uma simples aritmetica modular */
    for (int i = 0;i < n;i++) {
      for (int j = 0;j < m;j++)
        printf("%d ", matriz[(coordX+i)%n][(coordY+j)%m]);
      printf("\n");
    }

    printf("\n");
  }

  return 0;
}
